Data Structure of Berkeley(0)

Array

char c[];//引用一个任意长度的字符数组
c=new char[4];
c[0]='b';
c[1]='l';
c[2]='u';
c[3]='e';
c[4]='s';//runtime error 编译时没有问题运行时出现问题
int l= c.length//获得数组的长度,这里.length是一个域,如果为string.length 则一个为方法。filed和method的区别,method为一段代码函数,filed为存储在某一位置的一个变量。

Primes Revisited 素数遍历

程序分三步,主要算法为古老的sieve of eratosthenes(埃拉托斯特尼筛法),第一步假设所有的数都为素数,第二部,用2~根号n的除子去除这个数。第三步打印.

//Part1
public static void printPrimes[int n]{
    boolean[] prome = new boolean[n+1];  //Number 0~n 为何不用n-1为了是下标对应数值 
    int i ;
    for (i=2;i<=n ;i ++)
    prime[i]= true;
    
//Part2        
for(int divisor =2 ;divisor *divisor <=n; divisor++)//divisor从0~根号N递增
if prime(divisor){                                           //省去前面除子已经遍历出的非素数除子
    for (i=2*divisor;i<=n;i=i+divisor) //从两倍非素数除子开始,没遍历一次除子加一倍,并判断是否已超出范围
    prime[i]=false;
}

//Part3
for(i=2;i<=n;i++){
if(prime[i]){
    System.out.print(“”+i);
    }
}
}

Pascal Triangle

/*返回一个三角
            1
          1  1
       1   2   1
     1   3   3   1
   1   4   6   4   1
 1  5   10  10  5   1
 */

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static int [][] pascalTriangle(int n){
int [][] pt = new int [n][];
for(int i= 0;i<n;i++){
pt[i]= new int [i+1];
pt[i][0]=1;
for(int j = 1;j<i;j++){
pt[i][j]=pt[i-1][j-1]+pt[i-1][j];
}
pt[i][i]=1;
}
return pt;
}
}
}
}

请我喝杯咖啡吧!